package com.duing.enums;



public enum ErrorCode {
    PARAM_ERROR(400, "参数错误"),
    NOT_FOUND(404, "数据不存在"),
    DB_ERROR(500, "数据库操作失败"),
    SYSTEM_ERROR(500, "系统异常"),
    DATA_EXISTS(500, "数据已存在");

    private final int code;
    private final String msg;

    ErrorCode(int code, String msg) {
        this.code = code;
        this.msg = msg;
    }
    public int getCode() {
        return code;
    }

    public String getMsg() {
        return msg;
    }

    /**
     * 根据错误码查找枚举
     */
    public static ErrorCode findByCode(int code) {
        for (ErrorCode ec : values()) {
            if (ec.code == code) {
                return ec;
            }
        }
        return SYSTEM_ERROR; // 默认返回系统错误
    }

    /**
     * 获取带前缀的错误码（便于区分错误来源）
     */
    public String getFullCode() {
        return "ERR_" + this.code;
    }

    /**
     * 获取完整的错误信息（包含错误码）
     */
    public String getFullMessage() {
        return String.format("[%s] %s", getFullCode(), msg);
    }
}
